import request from '@/utils/request'

// 查询生产计划列表
export function listProductionPlans(query) {
  return request({
    url: '/ldzl-sc/sc/productionPlan/list',
    method: 'get',
    params: query
  })
}

// 查询生产计划详细信息
export function getProductionPlan(id) {
  return request({
    url: '/ldzl-sc/sc/productionPlan/' + id,
    method: 'get'
  })
}

// 新增生产计划
export function addProductionPlan(data) {
  return request({
    url: '/ldzl-sc/sc/productionPlan/add',
    method: 'post',
    data: data
  })
}

// 修改生产计划
export function updateProductionPlan(data) {
  return request({
    url: '/ldzl-sc/sc/productionPlan',
    method: 'put',
    data: data
  })
}

// 删除生产计划
export function delProductionPlan(id) {
  return request({
    url: '/ldzl-sc/sc/productionPlan/' + id,
    method: 'delete'
  })
}

// 导出生产计划
export function exportProductionPlan(query) {
  return request({
    url: '/ldzl-sc/sc/productionPlan/export',
    method: 'get',
    params: query
  })
}

// 撤回生产计划
export function rollbackProductionPlan(id) {
  return request({
    url: '/ldzl-sc/sc/productionPlan/rollback/' + id,
    method: 'put'
  })
}

// 分解生产计划
export function decomposePlan(planCode) {
  return request({
    url: '/ldzl-sc/sc/productionPlan/decompose/' + planCode,
    method: 'post'
  })
}

// 获取生产计划关联的工单列表
export function getWorkOrdersByPlanCode(planCode) {
  return request({
    url: '/ldzl-sc/sc/workOrder/list',
    method: 'get',
    params: {
      planCode: planCode
    }
  })
}

// 根据生产订单创建生产计划
export function createPlanFromOrder(productionOrderId) {
  return request({
    url: '/ldzl-sc/sc/productionPlan/create-from-order/' + productionOrderId,
    method: 'post'
  })
}

// 获取生产计划关联的产品列表
export function getProductsByPlanCode(planCode) {
  return request({
    url: '/ldzl-sc/sc/plan/products',
    method: 'get',
    params: {
      planCode: planCode
    }
  })
}

// 获取生产计划关联的物料列表
export function getMaterialsByPlanCode(planCode) {
  return request({
    url: '/ldzl-sc/sc/plan/materials',
    method: 'get',
    params: {
      planCode: planCode
    }
  })
}

// 获取产品对应的BOM信息
export function getBomByProductId(productId) {
  return request({
    url: '/ldzl-sc/sc/bom/detail',
    method: 'get',
    params: {
      productId: productId
    }
  })
}

/**
 * 根据计划编号获取生产产品列表
 * @param {string} planCode
 */
export function getProductListByPlanCode(planCode) {
  return request({
    url: '/ldzl-sc/sc/productionPlan/list-products/' + planCode,
    method: 'get'
  })
}

/**
 * 根据计划编号获取物料明细列表
 * @param {string} planCode
 */
export function getMaterialListByPlanCode(planCode) {
  return request({
    url: '/ldzl-sc/sc/productionPlan/list-materials/' + planCode,
    method: 'get'
  })
}
